package cn.iocoder.yudao.module.system.controller.admin.a_audio_and_video.qukanvo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author lxj
 */
@Schema(description = "趣看 Request VO")
@Data
@ToString(callSuper = true)
public class QuKaiReqVO {

    @Schema(description = "音视频主键id")
    private String id;

    @Schema(description = "触发事件名")
    //视频分析完成    video_analyse
    //视频转码完成    video_transcode
    //删除视频    video_delete
    //手动同步视频信息    video_manual_trigger
    //非编生成视频    video_process
    @NotNull(message = "触发事件名不能为空")
    private String event;

    @Schema(description = "事件关联数据，注意：字段类型为字符串，字段内容为json格式")
    @NotNull(message = "事件关联数据不能为空")
    private String data;

    @Schema(description = "为了鉴权， 用户在趣看平台的appKey")
    @NotNull(message = "appKey不能为空")
    private String appKey;

    @Schema(description = "为了鉴权，当前时间戳")
    @NotNull(message = "时间戳不能为空")
    private Long nonce;

    @Schema(description = "为了鉴权，签名，算法说明：  待签名内容content：appKey=xxx&nonce=xxx  （xxx请替换成相关数据值）  signature = Base64(HmacSHA1(content, appSecret))")
    @NotNull(message = "签名不能为空")
    private String signature;

    @Schema(description = "视频名")
    private String name;

    @Schema(description = "视频宽")
    private Integer width;

    @Schema(description = "视频宽")
    private Integer height;

    @Schema(description = "视频源访问地址")
    private String sourceUrl;

    @Schema(description = "视频源是否可在网页直接观看，1：可以，0：不可")
    private Integer sourceCanPlay;

    @Schema(description = "视频截图")
    private String screenshot;

    @Schema(description = "视频时长，单位毫秒")
    private Long during;

    @Schema(description = "13位时间戳，事件触发时间")
    private Long operateTime;

    @Schema(description = "视频所属主账号（二级账号）ID")
    private Long userId;

    @Schema(description = "视频上传账号ID")
    private Long memberId;

    @Schema(description = "视频类型，1:上传，4:云非编，10:云制播录像，11：电视拆条，12：云拆条，14：直播录像，15：录像选段")
    private Integer type;

    @Schema(description = "所有转码后的视频链接列表，列表元素为UrlInfo")
    private List<UrlInfo> urlList;

    @Schema(description = "同步操作者账号ID")
    private Long operateMemberId;

    @Schema(description = "视频大小，单位byte")
    private Long size;

    @Schema(description = "源视频ID, 空表示不存在源视频")
    private String sourceId;

    @Schema(description = "1:直播录像 2:趣看视频id 3:第三方视频id")
    private Integer sourceType;


}
